import java.util.Date;
import java.util.Scanner;

public class Start {

    public static void main(String[] args) {
        login();
    }

    public static void menu() {
        System.out.println("****************欢迎来到碟片管理系统****************");
        System.out.println("\t\t\t\t\t请选择：");
        System.out.println("\t\t\t\t\t1.新增碟片");
        System.out.println("\t\t\t\t\t2.显示全部碟片");
        System.out.println("\t\t\t\t\t3.出租碟片");
        System.out.println("\t\t\t\t\t4.删除碟片");
        System.out.println("\t\t\t\t\t5.归还碟片");
        System.out.println("\t\t\t\t\t6.出租热”星“");
        System.out.println("\t\t\t\t\t7.退出程序");
        System.out.println("<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->");
    }

    public static void login() {
        Admin admin = new Admin("769970378", "000");
        Scanner si = new Scanner(System.in);
        for (int i = 0; i < 5; i++) {
            System.out.println("******************\t请登录\t******************");
            System.out.println("\t\t\t\t请输入用户名！");
            String name = si.next();
            System.out.println("\t\t\t\t请输入登陆密码！");
            String password = si.next();
            if (admin.getUsername().equals(name) && admin.getPassword().equals(password)) {
                System.out.println("****************\t登陆成功！\t*****************");
                select();
            } else {
                if (i < 4) {
                    System.out.println("账号或者密码错误，请重新输入！");
                    System.out.println("您还有" + (4 - i) + "次机会尝试登陆！");
                }
                if (i == 4) {
                    System.out.println("对不起，程序已锁定！");
                }
            }

        }
    }

    public static void select() {
        Disc[] discs = new Disc[50];
        for (int i = 0; i < discs.length; i++)
            discs[i] = new Disc();
        Scanner scanner = new Scanner(System.in);
        while (true) {
            menu();
            String a = scanner.next();
            switch (a) {
                case "1":
                    addTo(discs);
                    break;
                case "2":
                    outPut(discs);
                    break;
                case "3":
                    rent(discs);
                    break;
                case "4":
                    delete(discs);
                    break;
                case "5":
                    giveBack(discs);
                    break;
                case "6":
                    sequence(discs);
                    break;
                case "7":
                    return;
                default:
                    System.out.println("选择错误，请重新输入！");
                    break;
            }
        }


    }

    public static void addTo(Disc discs[]) {
        String index = "y";
        while ("y".equals(index)) {
            System.out.println("<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->");
            System.out.println("请输入碟片名!");
            Scanner scanner = new Scanner(System.in);
            String name = scanner.next();
            for (Disc disc : discs) {
                if (name.equals(disc.getName())) {
                    System.out.println("重复！");
                    break;
                } else if (disc.getName() == null) {
                    disc.setEntity(true);
                    disc.setStatus(true);
                    disc.setName(name);
                    System.out.println("请输入价格");
                    disc.setPrice(scanner.nextInt());
                    System.out.println("添加成功！");
                    System.out.println("<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->");
                    System.out.println("是否继续添加？yes:y  no:n");
                    index = scanner.next();
                    break;

                }
            }
        }
    }

    public static void outPut(Disc discs[]) {
        for (Disc disc : discs) {
            if (disc.isEntity())
                System.out.println(disc.toString());
        }

    }

    public static void delete(Disc discs[]) {
        String string = "y";
        while ("y".equals(string)) {
            System.out.println("<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->");
            System.out.println("请输入需要删除的名称！");
            Scanner scanner = new Scanner(System.in);
            outPut(discs);
            for (Disc disc : discs) {
                if (scanner.next().equals(disc.getName())) {
                    disc.setEntity(false);
                    System.out.println("删除成功！");
                    break;
                }
            }
            System.out.println("<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->");
            System.out.println("需要继续删除吗？yes:y  no:n ");
            string = scanner.next();
        }
    }

    public static void rent(Disc discs[]) {
        String in = "y";
        while ("y".equals(in)) {
            System.out.println("<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->");
            System.out.println("请输入需要租出的内容！");
            Scanner scanner = new Scanner(System.in);
            outPut(discs);
            String index = scanner.next();
            for (Disc disc : discs) {
                if (index.equals(disc.getName())) {
                    if (disc.isStatus()) {
                        disc.setStatus(false);
                        disc.setNumber_of_times();
                        disc.setDate(new Date());
                        System.out.println("租借成功！");
                        break;
                    } else {
                        System.out.println("此碟片已被租出！");
                        break;
                    }
                }
                if (!disc.isEntity()) {
                    System.out.println("该碟片不存在！");
                }
            }
            System.out.println("<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->");
            System.out.println("还需要租借吗？yes: y  no: n");
            in = scanner.next();
        }
    }

    public static void giveBack(Disc discs[]) {
        System.out.println("<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->");
        String string = "y";
        while ("y".equals(string)) {
            System.out.println("请输入归还碟片名称！");
            Scanner scanner = new Scanner(System.in);
            String index = scanner.next();
            for (Disc disc : discs) {
                if (index.equals(disc.getName())) {
                    long in = (new Date().getTime() - disc.getDate().getTime()) / 1000 / 60 / 60 / 24;
                    if (in > 100) {
                        System.out.println("租接时长已超过一百天，请支付" + in * disc.getPrice() + "元购买此碟片");
                        disc.setEntity(false);
                        break;
                    } else {
                        System.out.println(in + "天");
                        disc.setStatus(true);
                        System.out.println("请支付" + in * disc.getPrice() + "元");
                        System.out.println("归还成功！");
                        break;
                    }
                } else if (disc.isStatus()) {
                    System.out.println("名称输入错误！");
                    break;
                }
            }
            System.out.println("<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->");
            System.out.println("还需要归还吗？yes: y  ni: n");
            string = scanner.next();
        }

    }

    public static void sequence(Disc discs[]) {
        int max = 0;
        for (Disc disc : discs) {
            if (disc.getNumber_of_times() > max) {
                max = disc.getNumber_of_times();

            }
        }
        for (Disc disc : discs) {
            if (disc.getNumber_of_times() == max) {
                System.out.println("<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->");
                System.out.println("最热门的碟片是" + disc.getName() + "\n" + "被租出去" + disc.getNumber_of_times() + "次!");
                System.out.println("<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->");
                break;
            }
        }
    }

}
